package aa.jx.cartFunction.mapper;


import aa.jx.cartFunction.model.Cart;
import aa.jx.cartFunction.model.CartItemDTO;
import aa.jx.cartFunction.model.CartProductDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface CartMapper {
    boolean addCart(Cart cart);

    // CartMapper.java 新增方法
    Integer existsCartItem(@Param("userId") Integer userId,
                           @Param("productId") Integer productId);
    int updateCartQuantity(@Param("id") Integer id,
                           @Param("quantity") Integer quantity);
    Cart getCartById(Integer id);

    int deleteCartItem(@Param("id") Integer id, @Param("userId") Integer userId);

    // 清空购物车方法
    int clearCartByUserId(@Param("userId") Integer userId);

    // 查询方法
    List<CartItemDTO> selectCartItemsByUserIdAndProductName(
            @Param("userId") Integer userId,
            @Param("productName") String productName);

    // 在原有方法后添加
    List<CartProductDTO> selectCartProductsByUserId(@Param("userId") Integer userId);

    int updateCartQuantityOne(@Param("cartId") Integer cartId,
                              @Param("userId") Integer userId,
                              @Param("quantity") Integer quantity
    );


    // 在原有接口中添加
    List<CartProductDTO> selectCartItemsByIds(@Param("ids") List<Integer> ids);
    int deleteCartItemsByIds(@Param("ids") List<Integer> ids);









}
